/* 
 * File:   scene.h
 * Author: chaterolas
 *
 * Created on 24 de junio de 2009, 10:32 PM
 */

#ifndef _SCENE_H
#define	_SCENE_H

#include <iostream>
#include <list>
#include "../primitives/primitive.h"
#include "camera.h"

using namespace std;

class Scene {
public:
Scene(string name,int width, int height, int aaPasses, Camera *camera);
    virtual ~Scene();

    int isSealed();
    int getAAPasses();
    int primitivesCount();
    int getWidth();
    int getHeight();
    Camera *getCamera();
    string getName();
    Primitive **getPrimitives();

    void seal();
    void addPrimitive(Primitive *p);

private:
    list<Primitive*> objs;
    int w, h, aa, sealed, num_prim;
    string name;
    Camera *cam;
    Primitive **primitives;

};

#endif	/* _SCENE_H */

